计算机网络概述[网络]
1.计算机网络概述
1、什么是Internet?
1.1 从具体构成角度
零件的角度
- 节点
- 主机及其上运行的应用程序
- 路由器、交换机等网络交换设备
- 边:通信链路
- 接入网链路:主机连接到互联网的链路
- 主干链路:路由器间的链路
- 协议
1.2 从网络互联设备的角度
- 协议控制发送 、接收消息
- 如TCP、IP、HTTP、FTP、PPP
- Internet:"网络的网络“
- 松散的层次结构,互联的ISP
- 公共的Internet VS 专用的intranet
- Internet 标准
- RFC: Request for comments
- IETF: Internet Engineering Task Force
1.3 协议
定义了在两个或多个通信实体(对等层的实体)之间交换的报文格式和次序,以及在报文传输和/或接受或其他事件方面所采取的动作;
1.4 从服务的角度
- 使用通信设施进行通信的分布式应用
- Web、VoIP、email、分布式游戏、电子商务、社交平台……
- 通信基础设施为apps提供编程接口(通信服务)
- 将发送和接收数据的apps与互联网连接起来
- 为app应用提供服务类型、类似于邮政服务
- 无连接不可靠服务
- 面向连接的可靠服务
2、网络边缘
2.1 补充
- 网络结构
- 主机
- 应用程序
- 网络核心
- 互连着的路由器
- 网络的网络
- 接入网、物理媒体
- 有线或者无线通信链路
2.2 网络边缘
- 端系统(主机)
- 运行应用程序
- 如Web、email
- 在“网络的边缘”
- 客户/服务器模式
- 客户端向服务器请求、接受服务
- 如Web浏览器 / 服务器:email客户端 / 服务器
- 对等(peer-peer) 模式
- 很少(甚至没有)专门的服务器
- 如 Gnutella、KaZaA,Emule
- 每个节点既是服务器也是客户端,互相请求、分布式系统,无客户 / 服务器模式的缺陷如迅雷等。
2.3 网络边缘:采用网络设施的面向连接服务
- 目标:在端系统之间传输数据
- 握手:在数据传输之前做好准备
- 人类协议中:你好、你好
- 两个通信主机为连接建立状态
- TCP-传输控制协议(Transmission Control Protocol)
- Internet上面面向连接的服务
TCP服务
- 可靠的、按顺序地传送数据
- 确认和重传
- 流量控制
- 发送方不会淹没接收方
- 拥塞控制
- 当网络拥塞时,发送方降低发送速率
2.4 网络边缘:采用基础设施地无连接服务
-
目标:在端系统之间传输数据
- 无连接服务
-
UDP-用户数据报协议(User Datagram Protocol)
-
无连接
-
不可靠数据传输
-
无流量控制
-
无拥塞控制
-
-
使用TCP的应用
- HTTP(Web),FTP(文件传送),Telnet(远程登陆),SMTP(email)
-
使用UDP的应用
- 流媒体、远程会议、DNS、Internet电话
3、网络核心
3.1 网络核心
- 网络核心
- 基本问题:数据怎样通过网络进行传输
- 电路交换
- 分组交换
- 将要传送的数据分成一个个单位:分组(pocket)
- 将分组从一个路由器传到相邻路由器(hop),一段段最终从源端传送到目标端
- 每段:采用链路的最大传输能力(带宽)
3.2 网络核心:电路交换
端到端的资源被分配给从源端到目标端的呼叫叫"call"
- 独享资源:不同享
- 每个呼叫一旦建立起来就能够保证性能
- 如果呼叫没有数据发送,被分配的资源就会被浪费
- 通常被传统电话网络采用
3.3 网络核心:电路交换
为呼叫预留端-端资源
- 链路带宽、交换能力
- 专用资源:不共享
- 保证性能
- 要求建立呼叫连接
- 网络资源(如带宽)被分成片
- 为呼叫分配片
- 如果某个呼叫没有数据,则其资源片处于空闲状态(不共享)
- 将带宽分成片
- 频分
- 时分
- 波分
3.4 电路交换不适合计算机之间的通信
- 连接建立时间长
- 计算机之间的通信有突发性,如果使用线路交换,则浪费的片较多
- 即使这个呼叫没有数据传输,其所占据的片也不能被别的呼叫使用
- 可靠性不高?
3.5 网络核心:分组交换
- 以分组为单位存储-转发方式 + 网络带宽资源不再分为一个个片,传输时使用全部带宽 + 主机之间传输的数据被分成一个个分组
- 资源共享、按需使用
- 存储-转发:分组每次移动一跳(hop)
- 在转发之前,节点必须收到整个分组
- 延迟比线路交换要大
- 排队时间
- 存储-转发:分组每次移动一跳(hop)
3.6 分组交换:存储-转发
- 被传输到下一个链路之前,整个分组必须到达路由器:存储-转发
- 在一个速率为R bps的链路,一个长度为L bits的分组的存储延时:L/R s
3.7 分组交换:排队延迟和丢失
- 如果到达速率>链路的输出速率
- 分组将会排队,等待传输
- 如果路由器的缓存用完了,分组将会被抛弃
3.8 网络核心的关键功能
- 路由:决定分组采用的源到目标的路径
- 路由算法
- 转发:将分组从路由器的输入链路转移到输出链路
3.9 分组交换 VS 电路交换
同样的网络资源,分组交换允许更多用户使用网络!
分组交换是“突发数据的胜利者?”
- 适合于对突发式数据传输
- 资源共享
- 简单,不比建立呼叫
- 过度使用会造成网络拥塞:分组延时和丢失
- 对可靠的数据传输需要协议来约束:拥塞控制
3.10 分组交换网络:存储-转发
- 分组交换:分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分为:
- 数据报网络:
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 类似:问路
- Internet
- 虚电路网络
- 每个分组都带标签(虚电路标识VCID),标签决定下一跳
- 在呼叫建立时决定路径,在整个呼叫中路径保持不变
- 路由器维持每个呼叫的状态信息
- X.25和ATM
- 数据报网络:
3.11 数据报(datagram)的工作原理
- 在通信之前,无需建立起一个连接,有数据就传输
- 每一个分组都独立路由(路径不一样,可能会失序)
- 路由器根据分组的目标地址进行路由
3.12 总结
数据报是按地址找人,不事先确定路好不好走;
虚电路是先去一次,熟悉一下路线,再进行发送
4、接入网和物理媒体
4.1 Q:怎样将端系统和边缘路由器连接?
- 住宅接入网络
- 单位接入网络(学校、公司)
- 无线接入网络
- 注意:
- 接入网络的带宽(bits per second)
- 共享/专用
4.2 住宅接入:modern
- 将上网数据==调制==加载音频信号上,在电话线上传输,在局端将其中的数据==解调==出来;反之亦然
- 调频
- 调幅
- 调相位
- 综合调制
- ==拨号调制解调器==
- 56Kbps的速率直接接入路由器(通常更低)
- 不能同时上网和打电话;不能总是在线
4.3 接入网:digital subscriber line(DSL)
- 采用==现存的==到交换局DSLAM的电话线
- DSL线路上的数据被传到互联网
- DSL线路上的语音被传到电话网
- <2.5 Mbps上行传输速率(typically<1 Mbps)
- <24 Mbps下行传输速率(typically<10 Mbps)
4.4 接入网:线缆网络
有线电视信号线缆双向改造
FDM:在不同频段传输不同信道的数据,数字电视和上网数据(上下行)
- HFC:hybird fiber coax
- 非对称:最高30Mbps的下行传输速率,2 Mbps上行传输速率
- ==线缆和光纤网络==将每个家庭用户接入到 ISP 路由器
- 各用户==共享==到线缆头端的接入网络
- 与DSL不同,DSL每个用户一个专用线路到CO(central office)
4.5 住宅接入:电缆模式
4.6 接入网:家庭网络
4.7 企业接入网路
- 经常被企业或者大学等机构采用
- 10 Mbps,100 Mbps,1Gbps,10Gbps传输率
- 现在,端系统经常直接接到以太网交换机上
4.8 无线接入网络
- 各无线端系统共享无线接入网络(端系统到无线路由器)
- 通过基站或者接入点
4.9 物理媒体
- Bit:在发送-接收时间传播
- 物理链路:连接每个发送-接收对之间的物理媒体
- 导引型媒体:
- 信号沿着固体媒介被导引:同轴电缆、光纤、双绞线
- 非导引型媒体
- 开放的空间传输电磁波或者光信号,在电磁或者光信号中承载数字数据
- 双绞线(TP)
- 两根绝缘铜导线拧合
4.10 物理媒体:同轴电缆、光纤
- 同轴电缆:
- 两根同轴的铜导线
- 双向
- 基带电缆
- 宽带电缆
- 光纤和光缆
- 光脉冲,每个脉冲表示一个bit,在玻璃纤维中传输
- 高速:点到点的高速传输(如10Gbps-100Gbps传输速率)
- 低误码率:在两个中继器之间可以有很长的距离,不受电磁噪声的干扰
- 安全
4.11 物理媒介:无线链路
- 开放空间传输电磁波,携带要传输的数据
- 无需物理:”线缆“
- 双向
- 传播环境效应’
- 反射
- 吸收
- 干扰
- 无线链路类型‘
- 地面微波
- LAN
- wide-area
- 卫星
5、Internet结构和ISP
5.1 互联网络结构:网络的网络
-
端系统通过==接入ISPs==(Internet Service Providers)连接到互联网
- 住宅,公司和大学的ISPs
-
接入ISPs相应的必须是互联的
- 因此任何2个端系统可互相发送分组到对方
-
导致的“网络的网路”非常复杂
- 发展和演化是通过==经济的==和==国家的==政策来驱动
-
竞争:如果全局ISP是有利可为的业务,那会有竞争者
-
合作:通过ISP之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系
-
然后业务会细分(全球接入和区域接入),区域网络将出现,用于将接入ISPs连接到全局ISPs
- 然后==内容提供商网络(Internet Content Providers==,e.g.,Google,Microsoft,Akamai)可能会构建它们自己的网络,将它们的服务、内容更加靠近端用户,向用户提供更好的服务,减少自己的运营支出。
-
在网络的最中心,一些为数不多的充分连接的大范围网络(分布广、节点有限、但是之间有着多重连接)
-
“tier-1" commercial ISPs,国家或者国际范围的覆盖
-
==content provider network==:将它们的数据中心接入ISP,方便周边用户的访问;通常私有网络之间用专网绕过第一层ISP和区域
-
5.2 Internet结构:network of networks
- 松散的层次模型
- ==中心:第一层ISP==(如UUNet,BBN/Genuity,Sprint,AT&T)国家/国际覆盖,速率极高
- 直接与其他第一层ISP相连
- 与大量的第二层ISP和其他客户网络相连
-
第二层ISP:更小些的(通常是区域性的)ISP
-
与一个或多个第一层ISPs,也可能与其他第二层ISP
-
-
第三层ISP与其他本地ISP
-
接入网(与端系统最近)
-
5.3 互联网结构:网络的网络
- 很多内容提供商(如:Google)可能会部署自己的网络,连接自己的在各地的DC(数据中心),走自己的数据
- 连接若干local ISP和各级(包括一层)ISP,更加靠近用户
5.4 ISP之间的连接
- POP:高层ISP面向客户网络的接入点,涉及费用结算
- 如一个低层ISP接入多个高层ISP,多宿(multi home)
- 对等接入:2个ISP对等互联,不涉及费用结算
- IXP;多个对等ISP互联互通之处,通常不涉及费用结算
- 对等接入
- ICP自己部署专用网络,同时和各级ISP连接
6、分组延时、丢失和吞吐量
6.1 分组丢失和延时是怎样发生的?
- 在路由器缓冲区的分组队列
- ==分组到达链路的速率超过了链路输出的能力==
- 分组等待排到队头、被传输
6.2 四种分组延时
-
==节点处理延时:==
- 检查bit级差错
- 检查分组首部和决定将分组导向何处
-
==排队延时==
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
-
==传输延时==
- R=链路带宽(bps)
- L=分组长度(bits)
- 将分组发送到链路上的时间=L/R
- 存储转发延时
-
==传播延时==
-
d=物理链路的长度
-
s=在媒体上的传播速度
-
传播延时=d/s
-
节点延时
d
nodal=dproc+dqueue+dtrans+dprop-
dproc=处理延时
- 通常是微秒数量级或更少
-
dqueue=排队延时
- 取决于拥塞程度
-
dtrans=传输延时
- =L/R,对低速率的链路而言很大(如拨号),通常为微秒级到毫秒级
-
dprop=传播延时
- 几微秒到几百毫秒
-
-
6.3 分组丢失
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个节点或者源端系统重传,或者根本不重传
6.4 吞吐量
- 吞吐量:在源端和目标端之间传输的速率(数据量/单位时间)
- ==瞬间吞吐量==:在一个时间点的速率
- ==平均吞吐量==:在一个长时间内的平均值
7、协议层次及服务模型
7.1 协议层次
- 网络功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等
- 现实来看,网络的许多构成元素和设施:
- 主机
- 路由器
- 各种媒体的链路
- 应用
- 协议
- 硬件、软件
7.2 例子:两位异地哲学家的交流
7.3 航线的功能层次
- ==层次化方式实现复杂网络功能==:
- 将网络复杂的功能分层功能明确的==层次==,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:==服务==
- 本层协议实体相互交互执行本层的==协议动作==,目的是实现本层功能,通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接==利用了下层所提供的服务==
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务
7.4 服务和服务站点
- 服务(Service):低层实体向上层实体提供它们之间的通信的能力
- 通信用户(service user)
- 服务提供者(service provider)
- 原语(primitive):上层使用下层服务的形式,高层使用底层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的–形式
- 服务访问点SAP(Service Access Point):上层使用下层提供的服务通过层间的接口—地点;
- 例子:邮箱
- 地址(address):下层的一个实体支撑着上层的多个实体,SAP有标志不同上层实体的作用
- 可以有不同的实现,队列
- 例子:传输层的SAP:端口(port)
7.5 服务的类型
- 面向连接的服务(Connection-oriented Service)
- ==连接==:两个通信实体为进行通信而建立的一种结合
- 面向连接的服务通信的过程:建立连接,通信,拆除连接
- 面向连接的服务的例子:网络层的连接被成为虚电路
- 适用范围:对于大的数据块要传输;不适合小的零星报文
- 特点:保序
- 服务类型:
- 可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
- 可靠的字节流 远程登陆
- 不可靠的连接 数字化的声音
- 面向无连接的服务(Connectionless Service)
- 无连接的服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃;(例:寄信)
- 特点:不可靠、可能重复、可能失序
- IP分组,数据包
- 适用范围:适合传输零星数据
- 服务类型:
- 不可靠的数据报 电子方式的函件
- 有确认的数据报 挂号信
- 请求回答 信息查询
7.6 服务和协议
- 服务与协议的区别
- 服务:低层实体向上层实体提供它们之间的通信的能力,通过原语来操作的,垂直
- 协议:对等层实体之间在相互通信的过程中,需要遵循的规则的集合,水平
- 服务与协议的联系
- 本层==协议的实现==要靠下层提供的服务来实现
- 本层实体通过协议为上层==提供更高级的服务==
7.7 分层处理和实现复杂系统系统的好处?
==对付复杂的系统==
- 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
- 分层参考模型
- 结构化:模块化更易于维护和系统升级
- 改变某一层的服务的实现不影响系统中的其他层次
- 对于其他层次而言是透明的
- 改变某一层的服务的实现不影响系统中的其他层次
结合微服务的好处结合记忆
- 服务按照业务来划分,每个服务通常只专注于某一个特定的业务、所需代码量小,复杂度低、易于维护。
- 每个微服都可以独立开发、部署和运行,且代码量较少,因此启动和运行速度较快。
- 每个服务从设计、开发、测试到维护所需的团队规模小,一般 8 到 10 人,团队管理成本小。
- 采用单体架构的应用程序只要有任何修改,就需要重新部署整个应用才能生效,而微服务则完美地解决了这一问题。在微服架构中,某个微服务修改后,只需要重新部署这个服务即可,而不需要重新部署整个应用程序。
- 在微服务架构中,开发人员可以结合项目业务及团队的特点,合理地选择语言和工具进行开发和部署,不同的微服务可以使用不同的语言和工具。
- 微服务具备良好的可扩展性。随着业务的不断增加,微服务的体积和代码量都会急剧膨胀,此时我们可以根据业务将微服务再次进行拆分;除此之外,当用户量和并发量的增加时,我们还可以将微服务集群化部署,从而增加系统的负载能力。
- 微服务能够与容器(Docker)配合使用,实现快速迭代、快速构建、快速部署。
- 微服务具有良好的故障隔离能力,当应用程序中的某个微服发生故障时,该故障会被隔离在当前服务中,而不会波及到其他微服务造成整个系统的瘫痪。
- 微服务系统具有链路追踪的能力。
7.8 Internet协议栈
自顶向下
- ==网络层==:网络应用
- 为人类用户或者其他应用进程提供网络应用服务
- FTP、SMAP、HTTP、DNS
- ==传输层==:主机之间的数据传输
- 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠的通信
- ==网络层==:为数据报从源到目的选择路由
- 主机主机之间的通信,端到端通信,不可靠
- IP,路由协议
- ==链路层==:相邻网络节点间的数据传输
- 2个相邻2点的通信,点到点通信,可靠或不可靠
- 点对点协议PPP,802.11(wifi),Ethernet
- ==物理层==:在线路上传送bit
7.9 ISO/OSI 参考模型
- ==表示层==:允许应用解释传输的数据,例如加密,压缩,机器相关的表示转换
- ==会话层==:数据交换的同步,检查点,恢复
- 互联网协议栈没有这两层
TCP/IP 网络通常是由上到下分成 4 层,分别是应用层,传输层,网络层和网络接口层。
网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。
7.10 各层次的协议数据单元
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段,UDP数据报
- 网络层:分组packet(如果无连接方式:数据报datagram)
- 数据链路层:帧(frame)
- 物理层:位(bit)